home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung 2 / Power-Programmierung CD 2 (Tewi)(1994).iso / c / library / dos / diverses / cexpress / system / dealpage.asm < prev    next >
Encoding:
Assembly Source File  |  1989-05-03  |  1005 b   |  39 lines

  1. ;void  deallocate_pages(handle);
  2. ;  unsigned short  handle;
  3.  
  4.     EXTRN  _memory_model:byte
  5.     EXTRN  _error_code:byte
  6.  
  7. _TEXT    SEGMENT BYTE PUBLIC 'CODE'
  8.     ASSUME CS:_TEXT
  9.     PUBLIC _deallocate_pages
  10. _deallocate_pages proc near
  11.     mov  bx,sp        ;BX pts to stack
  12.     cmp  _memory_model,0    ;near or far?
  13.     jle  begin        ;jump if near
  14.     inc  bx            ;else add 2 to BX
  15.     inc  bx            ;
  16. begin:    mov  ah,45h        ;function number
  17.     mov  dx,ss:[bx+2]    ;get handle
  18.     int  67H        ;EMS interrupt
  19.     mov  _error_code,0    ;0 = successful
  20.     or   ah,ah        ;test if successful
  21.     jz   L1            ;jump ahead if so
  22.     inc  _error_code    ;1 = software error
  23.     cmp  ah,80h        ;test
  24.     je   L1            ;jump if error 1
  25.     inc  _error_code    ;2 = hardware error
  26.     cmp  ah,81h        ;test
  27.     je   L1            ;jump if error 2
  28.     inc  _error_code    ;3 = bad handle
  29.     cmp  ah,83h        ;test
  30.     je   L1            ;jump if error 3
  31.     inc  _error_code    ;4 = bad page mapping
  32. L1:    cmp  _memory_model,0    ;quit
  33.     jle  Quit        ;
  34.     db   0CBh        ;RET far
  35. Quit:    ret            ;RET near
  36. _deallocate_pages endp
  37. _TEXT    ENDS
  38.     END
  39.